今天來講一下user的需求,要匯出一份word檔,並且需要套上參數並替換值,其實nuget上有很多套件可以支援這種文書工作,像是Open XML,這邊介紹一款值絕不拖泥帶水的DocX。
首先至Nuget上下載dll,就可以直接使用
但引用時需要.Net Framework 4.0以上的環境,若版本不到就去使用Open XML之類的。
接著我們需要載入Docx檔案,顧名思義就是.docx的格式
Example1
需要範本檔
using (DocX doc = DocX.Load("c:\source.docx")) //取得範本檔
{
//取代文字
doc.ReplaceText("$TEST$", "123");
// 將取代完成的文件內容儲存成 Word 文件
doc.SaveAs("C:\test.docx");
}
Example2
同時也支援Stream
using (DocX doc = DocX.Load(Stream))
{
//取代文字
doc.ReplaceText("$TEST$", "123");
// 將取代完成的文件內容儲存成 Word 文件
doc.SaveAs("C:\test.docx");
}
example3
產生表格
using (DocX doc = DocX.Load(Stream))
{
//定義1列2行的table
var tb = doc.AddTable(1,2);
tb.Design = TableDesign.ColorfulListAccent1;//套上的表格格式
tb.Alignment = Alignment.center;//至中格式
tb.Rows[0].Cells[0].Paragraphs[0].Append("Test");
tb.Rows[0].Cells[1].Paragraphs[0].Append("99");
var row = tb.InsertRow();//新增列
row.Cells[0].Paragraphs[0].Append("Scott");
var pa = document.InsertParagraph("插入一個新段落");
pa.InsertTableAfterSelf(tb);
document.Save();
}
簡單就可以替換文字並且匯出,而且也有支援表格匯出,文字的內容(字型、顏色)都可以調整,相當容易上手,推薦給大家。
參考資料:
https://github.com/xceedsoftware/DocX
https://doc.xceed.com/xceed-document-libraries-for-net/Xceed.Document.NET~Xceed.Document.NET.TableDesign.html